package db

import (
	"database/sql"
	ctype "gsc-datasets/internal/db/dao/ctype"
)

// NSFromString string -> sql.NullString
func NSFromString(s string) sql.NullString {
	if s == "" {
		return sql.NullString{}
	}
	return sql.NullString{
		String: string(s),
		Valid:  true,
	}
}

// NSFromString string -> ctype.JsonNullString
func JNSFromString(s string) ctype.JsonNullString {
	ns := NSFromString(s)
	return ctype.JsonNullString{
		NullString: ns,
	}
}

// NInt64ToInt64 sql.NullInt64 -> int64
func NInt64ToInt64(ni sql.NullInt64) int64 {
	if ni.Valid {
		return ni.Int64
	}
	return 0
}

// NInt32ToInt32 sql.NullInt64 -> int32
func NInt32ToInt32(ni sql.NullInt32) int32 {
	if ni.Valid {
		return ni.Int32
	}
	return 0
}

// NInt64FromInt64 int64 -> sql.NullInt64
func NInt64FromInt64(i int64) sql.NullInt64 {
	if i == 0 {
		return sql.NullInt64{}
	}
	return sql.NullInt64{
		Int64: i,
		Valid: true,
	}
}

// NInt32FromInt32 int32 -> sql.NullInt32
func NInt32FromInt32(i int32) sql.NullInt32 {
	if i == 0 {
		return sql.NullInt32{}
	}
	return sql.NullInt32{
		Int32: i,
		Valid: true,
	}
}
